Many datacenters and other such networked environments employ virtualization, where self-contained operating systems or other computing workloads having various software stacks are deployed to run on computing systems. Such computing workloads include virtual machines (VMs) and VM images. A VM is an emulation of a computing system or device. Often, multiple VMs interact in some capacity. For example, one VM may contain a database application, such as the MySQL open source relational database management system, which another contains web application software which utilizes the database.
Sometimes the placement of computing workloads on the network is not optimal. Particularly, computing workloads may not be optimally placed in the instance of large networks with many switches and multiple tiers. These situations can lead to increased latency and overall increased bandwidth utilization, resulting in lower overall performance. Therefore, there is a need for improved systems and techniques for placing computing workloads within networks.